
package dailynewsreader.model;

import java.util.ArrayList;
import java.util.Collections;

/**
 * Az RSSFeed osztályból származik. Virtuális feed, a keresési találatokat 
 * tartalmazza.
 * 
 * @author Zen
 */
public class SearchFeed extends RSSFeed {
    
    /**
     * Látható-e a feed listában
     */
    private boolean isVisible;

    /**
     * Konstruktor
     */
    public SearchFeed(String searchText) {
        super();
        this.setTitle(LabelStorage.SEARCH_FEED_LABEL + " - \"" + searchText + "\"");
    }

    /**
     * Konstruktor
     */
    public SearchFeed(){
        super();
        this.setTitle(LabelStorage.SEARCH_FEED_LABEL);
    }
    
    /**
     * Konstruktor
     * 
     * @param entries Bejegyzések tömbje
     */
    public SearchFeed(ArrayList<RSSEntry> entries, String searchText) {
        this(searchText);
        this.appendEntries(entries);
    }
    
    /**
     * Hozzáfűz bejegyzéseket a sorhoz és rendezi
     * 
     * @param entries Bejegyzések tömbje
     */
    public void appendEntries(ArrayList<RSSEntry> entries) {
        for (RSSEntry entry : entries) {
            this.addEntry(entry);
        }
        Collections.sort(this.getEntries(), Collections.reverseOrder(new EntryComparatorByPubDate()));
    }

    /**
     * Visszaadja, hogy látható-e a feed listában
     *
     * @return Igaz vagy hamis
     */
    public boolean isIsVisible() {
        return isVisible;
    }

    /**
     * Beállítja, hogy látható-e a feed listában
     *
     * @param isVisible Igaz vagy hamis
     */
    public void setIsVisible(boolean isVisible) {
        this.isVisible = isVisible;
    }
    
    /**
     * Lekérdező függvény. Felülírja a szülőét, bármilyen szóra üres tömböt
     * ad vissza, mivel a keresési találatokban már nem kell tovább keresni.
     * 
     * @param characters A keresési kulcsszó
     * @return NULL
     */
    @Override
    public ArrayList<RSSEntry> getEntriesFor(String characters) {
        return null;
    }
}
